一、ETL类函数

(一)常用的数据类型

(二)ETL类函数

函数 作用 函数 作用
getSymbols() 从多种信息源里获得信息 getSymbols.csv() 从csv文件中读入数据
getDividends() 获取上市公司的股息数据 getSymbols.FRED() 从FRED中获取数据
getFinancials() 获取上市公司的财务报表 getSymbols.goole() 从google中获取数据
getFX() 获取汇率数据 getSymbols.MySQL 从MySQL中获取数据
getMetals() 获取重金属交易数据 getSymbols.oanda() 从oanda中获取数据
getSplits 获取上市公司的拆股数据 getSybols.rda() 从R的二进制文件获取数据
getOptionChain() 获取期权交易数据 getSymbols.SQLite() 从SQLite数据库中获取数据
getQuote() 获取即时的网络报价 getSymbols.yahoo() 从雅虎网中获取数据

1.getSymbols函数

获取上市公司股票的日交易数据

   getSymbols("EDU",src = "yahoo",from="2013-8-20",to="2013-9-02")
## [1] "EDU"
   class(EDU)
## [1] "xts" "zoo"
   pander::pander(EDU,split.cells = 4)
Table continues below
Period EDU.Open EDU.High EDU.Low EDU.Close EDU.Volume
2013/08/20 00时00分00秒 22.31 22.52 22.08 22.44 680300
2013/08/21 00时00分00秒 22.24 22.69 22.17 22.58 969800
2013/08/22 00时00分00秒 22.69 23.29 22.5 23.1 911300
2013/08/23 00时00分00秒 23.06 23.12 22.75 23 647000
2013/08/26 00时00分00秒 23 23.24 22.76 23.06 732200
2013/08/27 00时00分00秒 22.76 22.79 22.31 22.38 2145100
2013/08/28 00时00分00秒 22.18 22.41 21.66 21.95 666300
2013/08/29 00时00分00秒 21.89 22.15 21.71 21.88 876800
2013/08/30 00时00分00秒 21.91 21.91 20.91 21.23 1171500
EDU.Adjusted
21.51
21.64
22.14
22.05
22.1
21.45
21.04
20.97
20.35

环境参数的介绍 在全局环境下新建容器,容器是存放对象的。对象的名称是new.environment。通过ls()列出new.environment容器下AAPL变量值. 获取数据,并将获取后的记录放到AAPL中。AAPL通过env参数指定容器。通过get()获取new.environment容器下AAPL变量值。

  new.environment=new.env()
  getSymbols("AAPL",env=new.environment,scr="yahoo",from="2013-10-01",to="2013-10-10")
## [1] "AAPL"
  ls(envir=new.environment)
## [1] "AAPL"
  pander::pander(head( new.environment[["AAPL"]]),split.cells = 3)
Table continues below
Period AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
2013/10/01 00时00分00秒 68.35 69.88 68.34 69.71 88470900
2013/10/02 00时00分00秒 69.38 70.26 69.11 69.94 72296000
2013/10/03 00时00分00秒 70.07 70.34 68.68 69.06 80688300
2013/10/04 00时00分00秒 69.12 69.23 68.37 69 64717100
2013/10/07 00时00分00秒 69.51 70.38 69.34 69.68 78073100
2013/10/08 00时00分00秒 69.99 70.09 68.65 68.71 72729300
AAPL.Adjusted
62.55
62.76
61.97
61.92
62.53
61.65

获取各种指数的日数据,例如获取沪深300指数的日数据,它的代码为00300.ss,后面的字母表示该指数从属哪个交易所。

  getSymbols("000300.ss",env=new.environment,scr ="yahoo",from="2013-10-01",to="2013-12-10")
## [1] "000300.ss"
  ls(envir = new.environment)
## [1] "000300.SS" "AAPL"
  pander::pander(head(new.environment[["000300.SS"]]),split.cells =3)
Table continues below
Period 000300.SS.Open 000300.SS.High 000300.SS.Low
2013/10/08 00时00分00秒 2442 2442 2442
2013/10/09 00时00分00秒 2454 2454 2454
2013/10/10 00时00分00秒 2429 2429 2429
2013/10/11 00时00分00秒 2469 2469 2469
2013/10/14 00时00分00秒 2473 2473 2473
2013/10/15 00时00分00秒 2468 2468 2468
000300.SS.Close 000300.SS.Volume 000300.SS.Adjusted
2442 0 2442
2454 0 2454
2429 0 2429
2469 0 2469
2473 0 2473
2468 0 2468

4.getDividends

getDividends("AAPL",env = new.environment,from =" 2012-01-01",to="2013-10-25",vrobose=TRUE)
##              AAPL.div
## 2012-08-09 0.05408143
## 2012-11-07 0.05408143
## 2013-02-07 0.05408143
## 2013-05-09 0.06224429
## 2013-08-08 0.06224429
pander::pander(new.environment[["AAPL"]])
Table continues below
Period AAPL.Open AAPL.High AAPL.Low AAPL.Close
2013/10/01 00时00分00秒 68.35 69.88 68.34 69.71
2013/10/02 00时00分00秒 69.38 70.26 69.11 69.94
2013/10/03 00时00分00秒 70.07 70.34 68.68 69.06
2013/10/04 00时00分00秒 69.12 69.23 68.37 69
2013/10/07 00时00分00秒 69.51 70.38 69.34 69.68
2013/10/08 00时00分00秒 69.99 70.09 68.65 68.71
2013/10/09 00时00分00秒 69.23 69.68 68.33 69.51
AAPL.Volume AAPL.Adjusted
88470900 62.55
72296000 62.76
80688300 61.97
64717100 61.92
78073100 62.53
72729300 61.65
75431300 62.38

二、分析类函数

1.is 族函数 2.hash 族函数 3.列名函数 4.计算函数

(一)列名函数

提取某种类型

数据类型 全称 意义
Op Open price 开盘价
Hi High price 最高价
Lo Low price 最低价
Cl Close price 收盘价
Vo Volume 交易量
Ad Adjusted price 调整价格
HLC Hi,Lo,Cl 最高价、最低价和收盘价
OHLC Op,Hi,Lo,Cl 开盘价、最高价、最低价和收盘价
  getSymbols("AAPL",from="2013-09-01", to="2013-09-20")
## [1] "AAPL"
  Op(AAPL)
##            AAPL.Open
## 2013-09-03  70.44286
## 2013-09-04  71.36571
## 2013-09-05  71.46429
## 2013-09-06  71.20571
## 2013-09-09  72.14286
## 2013-09-10  72.31428
## 2013-09-11  66.71571
## 2013-09-12  66.92857
## 2013-09-13  67.04857
## 2013-09-16  65.85714
## 2013-09-17  63.99429
## 2013-09-18  66.16857
## 2013-09-19  67.24286
  Hi(AAPL)
##            AAPL.High
## 2013-09-03  71.51428
## 2013-09-04  71.74857
## 2013-09-05  71.52571
## 2013-09-06  71.34000
## 2013-09-09  72.56000
## 2013-09-10  72.49286
## 2013-09-11  67.67000
## 2013-09-12  67.91428
## 2013-09-13  67.40429
## 2013-09-16  65.94428
## 2013-09-17  65.67286
## 2013-09-18  66.62143
## 2013-09-19  67.97572
  Lo(AAPL)
##            AAPL.Low
## 2013-09-03 69.62143
## 2013-09-04 70.89714
## 2013-09-05 70.52000
## 2013-09-06 69.99286
## 2013-09-09 71.92571
## 2013-09-10 69.92857
## 2013-09-11 66.40143
## 2013-09-12 66.57286
## 2013-09-13 66.38571
## 2013-09-16 63.88857
## 2013-09-17 63.92857
## 2013-09-18 65.80857
## 2013-09-19 67.03571

(二)is 族函数

判断某数据是否是某类型的数据

is.OHLC() --Open price,High price,Low price Close price 开盘价,最高价,最低价和收盘价
is.OHLCV() --V 交易量
is.BBO()
is.TBBO()
is.HLC()

(三)hash 函数

检查数据里面是否包含某类型的数据

has.OHLC()
has.HLC()
has.OHLCV()
has.Op()
has.Hi()
has.Lo()
has.Cl()
has.Vo()
has.Ad()
has.Ask()
has.Bid()
has.Price()
has.Qty()
has.Trade()
  #检查数据里面包含某种数据类型
  #是否包含开盘价
  has.Op(AAPL) 
## [1] TRUE
  #是否包含开盘价,最高价,最低价,收盘价
  has.OHLC(AAPL)
## [1] TRUE TRUE TRUE TRUE
  has.OHLC(AAPL,which=FALSE)
## [1] TRUE TRUE TRUE TRUE
  has.OHLC(AAPL,which=TRUE)
## [1] 1 2 3 4

(四)计算函数

函数 描述
Delt() 计算变化率
Lag() 求滞后K期
Next() 所有观测值的值前进k个单位
first() 求前K个元素
last() 求后K个元素
periodReturn() 计算不同阶段的收益率
dailyReturn() 计算日收益率
weeklyReturn() 计算周收益率
monthlyReturn() 计算月收益率
quarterlyReturn() 计算季度收益率
annualReturn() 计算年化收益率
yearlyReturn() 计算年收益率
allReturn() 各种收益率汇总

Delt()函数 主要是用来计算一个序列的一个阶段到另一个阶段的变化率或者计算两个序列之间的变化率

  #当天减去前一天的值,然后除以前一天的值,
  Delt(Op(AAPL),type=("arithmetic"))#算数
##            Delt.1.arithmetic
## 2013-09-03                NA
## 2013-09-04       0.013100817
## 2013-09-05       0.001381223
## 2013-09-06      -0.003618255
## 2013-09-09       0.013161149
## 2013-09-10       0.002376188
## 2013-09-11      -0.077419987
## 2013-09-12       0.003190553
## 2013-09-13       0.001792881
## 2013-09-16      -0.017769641
## 2013-09-17      -0.028286288
## 2013-09-18       0.033976237
## 2013-09-19       0.016235623
  Delt(Op(AAPL),type=("log"))#对数
##              Delt.1.log
## 2013-09-03           NA
## 2013-09-04  0.013015744
## 2013-09-05  0.001380270
## 2013-09-06 -0.003624817
## 2013-09-09  0.013075294
## 2013-09-10  0.002373369
## 2013-09-11 -0.080581172
## 2013-09-12  0.003185474
## 2013-09-13  0.001791276
## 2013-09-16 -0.017929417
## 2013-09-17 -0.028694052
## 2013-09-18  0.033411794
## 2013-09-19  0.016105235
  #(关盘价-开盘价)/开盘价
  Delt(Op(AAPL),Cl(AAPL))
##            Delt.0.arithmetic
## 2013-09-03      -0.009166494
## 2013-09-04      -0.001741494
## 2013-09-05      -0.009955098
## 2013-09-06      -0.000441327
## 2013-09-09       0.002316764
## 2013-09-10      -0.022836816
## 2013-09-11       0.001498867
## 2013-09-12       0.008943430
## 2013-09-13      -0.009460083
## 2013-09-16      -0.023600843
## 2013-09-17       0.016430045
## 2013-09-18       0.003238501
## 2013-09-19       0.003399156

Next()函数

  head(AAPL)
##            AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
## 2013-09-03  70.44286  71.51428 69.62143   69.79714    82982200
## 2013-09-04  71.36571  71.74857 70.89714   71.24143    86258200
## 2013-09-05  71.46429  71.52571 70.52000   70.75285    59091900
## 2013-09-06  71.20571  71.34000 69.99286   71.17429    89881400
## 2013-09-09  72.14286  72.56000 71.92571   72.31000    85171800
## 2013-09-10  72.31428  72.49286 69.92857   70.66286   185798900
##            AAPL.Adjusted
## 2013-09-03      62.63193
## 2013-09-04      63.92795
## 2013-09-05      63.48952
## 2013-09-06      63.86770
## 2013-09-09      64.88683
## 2013-09-10      63.40878
  #所有观测值的值前进k个单位
  Next(AAPL,1)
##                Next
## 2013-09-03 71.36571
## 2013-09-04 71.46429
## 2013-09-05 71.20571
## 2013-09-06 72.14286
## 2013-09-09 72.31428
## 2013-09-10 66.71571
## 2013-09-11 66.92857
## 2013-09-12 67.04857
## 2013-09-13 65.85714
## 2013-09-16 63.99429
## 2013-09-17 66.16857
## 2013-09-18 67.24286
## 2013-09-19 71.74857

Return系列

  getSymbols("AAPL")
## [1] "AAPL"
  periodReturn(AAPL,period = "daily",subset = "2013-10-01::2013-10-23",type = "arithmetic")
##            daily.returns
## 2013-10-01  0.0235134231
## 2013-10-02  0.0032789224
## 2013-10-03 -0.0125622807
## 2013-10-04 -0.0007860429
## 2013-10-07  0.0097716536
## 2013-10-08 -0.0139621543
## 2013-10-09  0.0117478589
## 2013-10-10  0.0062681067
## 2013-10-11  0.0064741567
## 2013-10-14  0.0065542136
## 2013-10-15  0.0053221678
## 2013-10-16  0.0048728946
## 2013-10-17  0.0067649438
## 2013-10-18  0.0087017010
## 2013-10-21  0.0245043747
## 2013-10-22 -0.0028579483
## 2013-10-23  0.0097909112
  head(dailyReturn(AAPL))
##            daily.returns
## 2007-01-03  -0.028856159
## 2007-01-04   0.022195679
## 2007-01-05  -0.007121188
## 2007-01-08   0.004938272
## 2007-01-09   0.083070106
## 2007-01-10   0.047855589
  first(allReturns(AAPL),5)
##                   daily      weekly monthly quarterly yearly
## 2007-01-03           NA          NA      NA        NA     NA
## 2007-01-04  0.022195679          NA      NA        NA     NA
## 2007-01-05 -0.007121188 -0.01437016      NA        NA     NA
## 2007-01-08  0.004938272          NA      NA        NA     NA
## 2007-01-09  0.083070106          NA      NA        NA     NA

三、展现类函数

这里图完善一下图的名字

(一)基础图形的作图——条形图,蜡烛图,线图

作图函数 描述
chartTheme() 啥啥啥
chartSeries() 啥都是
reChart()
barChart() 箱型图
candleChart() 蜡烛图
lineChart() 线图

chartserises() 主绘图函数,可以画条形图,蜡烛图和线图

chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23")

chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",theme = "white")

#适合印刷
chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",theme = "white.mono")

chart_Series(AAPL,type = "auto",subset = "2013-10-01::2013-10-23")

chart_Series(AAPL,type = "candlesticks",subset = "2013-10-01::2013-10-23")

chart_Series(AAPL,type = "bar",subset = "2013-10-01::2013-10-23")

chart_Series(AAPL,type = "line",subset = "2013-10-01::2013-10-23")

chart_Series(AAPL,type = "matchsticks",subset = "2013-10-01::2013-10-23")

reChart() 可以在不重新再画一张新的图的前提下修改已经画出来的图

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-10-01::2013-10-23",type="candlesticks")

reChart(type = "bars",subset ="2013-10-01::2013-10-23" ,show.grid = TRUE)

barChart() barchar()特有的bartype

getSymbols("AAPL",scr="yahoo")
## [1] "AAPL"
barChart(AAPL,theme = "white")

barChart(AAPL,theme = "white",subset = "2012-12::2013")

barChart(AAPL,theme = "white",subset = "last 10 weeks")

barChart(AAPL,theme = "white",subset = "first 10 weeks")

#bartype
barChart(AAPL,theme = "white",subset = "first 10 weeks",bar.type = "ohlc")

barChart(AAPL,theme = "white",subset = "first 10 weeks",bar.type = "hlc")

lineChart()

lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "l")

lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "p")

lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "b")

(二)技术分析图

技术分析图函数 描述
addADX()
addATR()
addBBands()
addCCI()
addCMF()
addCMO()
addEMA()
addEnvelope()
addMACD()
addMomentum()
addExpiry()
addSAR()
addSMA()
addSMI()
addDEMA()
addDPO()
addROC()
addRSI()
addVo()
addWMA()
addWPR()
addZLEMA()
addZigZag()

例ADX

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks",theme = "white")

addADX()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addBBands(n=14,sd=2,draw = "percent")

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addBBands(n=14,sd=2,draw = "width")

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addCCI()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addRSI()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addVo()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addWPR()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addSAR()

chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")

addDPO()